Many programming languages, including graphical programming languages and textual programming languages provide support for dynamically typed array-based, programming. Array-based languages can be used to solve many different mathematical and scientific computing problems. Examples of computing environments employing a dynamically typed, matrix-based mathematical programming language are Julia, Python™, and MATLAB® and Simscape™ software by The MathWorks, Inc. of Natick, Mass.
In a dynamically typed programming environment (“DTPE”), data types can be assigned to each data value in memory at runtime, rather than assigning a type to a static, syntactic entity in the program source code. The DTPE can discover errors related to the misuse of values at the time the erroneous statement or expression is executed. In contrast, in a statically typed programming environment (“STPE”), types can be assigned to sets of values, program variables, and expressions based on the program's source code. Static type disciplines can operate on program source code rather than on the program execution. Therefore, in the STPE, certain kinds of errors can be detected without executing the program.
Dynamically typed programming languages (“DTPLs”) can operate on numeric arrays, e.g., vectors and matrices, character arrays, cell arrays, and arrays of objects. Numeric arrays and character arrays include only homogeneous data. Cell arrays, which are programming constructs having indexed data containers called cells, may contain any data of any type and of any size supported by the data processing software. Examples of different types of data can include: logical data, character data, various types of numeric data (e.g., numeric scalar data and numeric arrays), other cell arrays, structures, java classes, function handles, and any new data types created using an object-oriented class definition (e.g., any new data types created using a MATLAB® object system, such as, for example, MATLAB® oops, udd, and mcos object systems.) Cell arrays of DTPLs cannot currently be directly represented in statically typed programming languages (“STPLs”).